using System;
using csharp.rad.general;

namespace csharp.rad.sisponto
{
   public class Banco
   {
      private Int32 b_id;
      private String b_nome;
      private String b_agencia;
      private String b_endereco;
      private String b_cidade;
      private String b_telefone;
      private Database bd;
      Database.Result result = new Database.Result();
      private String b_msgErro;

      public Banco(Database bancoDeDados)
      {
         this.bd = bancoDeDados;
      }

      public Int32 id
      {
         get { return b_id; }
         set { b_id = value; }
      }
      public String nome
      {
         get { return b_nome; }
         set { b_nome = value; }
      }
      public String agencia
      {
         get { return b_agencia; }
         set { b_agencia = value; }
      }
      public String endereco
      {
         get { return b_endereco; }
         set { b_endereco = value; }
      }
      public String cidade
      {
         get { return b_cidade; }
         set { b_cidade = value; }
      }
      public String telefone
      {
         get { return b_telefone; }
         set { b_telefone = value; }
      }
      public String msgErro
      {
         get { return b_msgErro; }
         set { b_msgErro = value; }
      }

      public int obter()
      {
         String _sql;
         String tabela = "banco";

         System.Data.DataSet dtsBancos = new System.Data.DataSet();
         _sql = "SELECT * FROM banco WHERE id_banco = " + id;
         dtsBancos = bd.ExecuteQuery(_sql, tabela, out result);
         if (result.Status == Database.Status.Failed)
         {
            msgErro = result.ErrorMessage;
            return -1;
         }
         if (dtsBancos.Tables[tabela].Rows.Count == 0)
            return 0;

         System.Data.DataRow registro = dtsBancos.Tables[tabela].Rows[0];
         b_nome = registro["nome"].ToString();
         b_agencia = registro["agencia"].ToString();
         b_endereco = registro["endereco"].ToString();
         b_cidade = registro["cidade"].ToString();
         b_telefone = registro["telefone"].ToString();
         return 1;
      }

      public int inserir()
      {
         String _sql;

         _sql = "INSERT INTO banco (nome, agencia, endereco, cidade, telefone) "
               + " VALUES('" + b_nome + "','" + b_agencia + "','" + b_endereco + "','" + b_cidade + "','" + b_telefone + "')";
         result = bd.ExecuteCommand(_sql, Database.doNotUseTransaction);
         if (result.Status == Database.Status.Failed)
         {
            msgErro = result.ErrorMessage;
            return -1;
         }
         return 1;
      }

      public int gravar()
      {
         String _sql;

         _sql = "UPDATE banco SET nome='" + b_nome + "', agencia='" + b_agencia + "', "
               + " endereco='" + b_endereco + "',cidade='" + b_cidade + "',telefone='" + b_telefone + "' "
               + " WHERE (id_banco = " + b_id + ");";

         result = bd.ExecuteCommand(_sql, Database.doNotUseTransaction);
         if (result.Status == Database.Status.Failed)
         {
            msgErro = result.ErrorMessage;
            return -1;
         }
         return 1;
      }
   }
}
